package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import feign.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: WmsPickingMapper.java
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @Author syh
 * @Date Wed Oct 25 18:25:38 CST 2017
 */
public interface WmsPickingMapper extends BaseDao<WmsPicking>{
    /**
     * 查询发运明细内的货品明细信息
     * @param map
     * @return
     */
    public List<WmsGoodsLocation> serachKw(Map<String, Object> map);

    /**
     * 查询库位类型
     * @param kwid
     * @return
     */
    public String searchKwlx(@Param("kwid") String kwid);
    /**
     * 查询货品名称
     * @param hpid
     * @return
     */
    public String searchHpmc(@Param("hpid") String hpid);
    /**
     * 规定日期下的 总出库数量
     * @param map
     * @return
     */
    public Integer getZckslSum(@Param("map") Map<String, Object> map);

    /**
     * 判断货主管理中“是否切箱”
     * @param sshzid
     * @return
     */
    public WmsPicking sechSfqx(@Param("sshzid") String sshzid);

    /**
     * 拿着订单明细id去联合装箱/分配表去查库存的集合数据
     * @param
     * @param
     * @param map
     * @return
     */
    public List<WmsPicking> seachKc(@Param("map")Map<String,Object> map);

    /**
     * 拿着订单明细id去查 分配表和库存的集合数据
     * @param map
     * @return
     */
    public List<WmsPicking> seachKc_s(@Param("map")Map<String,Object> map);
    /**
     * 把现在得到的总数,到库存表里用待下架数量和库存数量各自减掉去
     * @param
     * @param map
     * @return
     */
    public Integer updateSl(@Param("map")Map<String,Object> map);
    /**
     * //查询库存对象selectKc
     * @param kcid
     * @return
     */
    public WmsStock selectKc(@Param("kcid")String kcid);
    /**
     * 生成新库存
     * @param map
     * @return
     */
    public Integer insetNewKc(@Param("map")Map<String,Object> map);
    /**
     * 更改分配拣货人
     * @param map
     * @param
     * @return
     */
    public Integer updateFp(@Param("map")Map<String,Object> map);
    /**
     * 更改装货拣货人
     * @param map
     * @param
     * @return
     */
    public Integer updateZh(@Param("map")Map<String,Object> map);
    /**
     * 发运订单里的状态改为全部拣货
     * @param
     * @param map
     * @return
     */
    public Integer updateFy(@Param("map")Map<String,Object> map);
    /**
     * 根据发运订单编号-查询发运订单明细
     * @param map
     * @return
     */
    List<WmsShipmentOrderDetailed> searchOrderDetailed(@Param("map")Map<String,Object> map);

    /**
     * 根据发运订单编号-查询发运订单明细
     *
     * @param map
     * @return
     */
    List<WmsShipmentOrderDetailed> searchOrderDetailed1(@Param("map") Map<String, Object> map);
    /**
     * 更改发运订单明细状态为全部拣货"4",部分拣货为"3"
     * @param  map
     * @return
     */
    public Integer updateFymxzt(@Param("map")Map<String,Object> map);
    /**
     * 生成拣货记录
     * @param map
     * @return
     */
    public Integer insertPick(@Param("map")Map<String,Object> map);
    /**
     *用货品id查这个箱里的货品对应的包装明细类型为2的箱数量
     * @param map
     * @return
     */
    public WmsPackingDetailed searchPackingDetailed(@Param("map")Map<String,Object> map);
    /**
     * 用分配的id 查装箱的集合
     * @param ssfpid
     * @return
     */
    public List<WmsBox> selectZxjh(@Param("ssfpid") String ssfpid);
    /**
     * 拿订单明细id查拣货集合
     * @param
     * @param
     * @param
     * @return
     */
    public  List<WmsPicking> seachJh(@Param("map")Map<String,Object> map);

    /**
     * 查询发运订单信息(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public List<WmsPicking> pickingTaskList(@Param("map") Map<String, Object> map);

    /**
     * 查询发运订单下的分配数据
     *
     * @param map1
     * @return
     */
    public List<WmsDistribution> searchDistribution(@Param("map") Map<String, Object> map1);
    /**
     * 用库存id和集货库位id查 新库存返回库存对象
     * @param
     * @param
     * @return
     */
    public WmsStock selectStock(@Param("map")Map<String,Object> map);
    /**
     * 更改拣货的发运状态
     * @param
     * @param map
     * @return
     */
    public Integer updateJhzt(@Param("map")Map<String,Object> map);
    /**
     * 更改新库存的数量
     * @param
     * @param map
     * @return
     */
    public Integer updateNewKcsl(@Param("map")Map<String,Object> map);
    /**
     * 更改发运订单明细发运状态以及（发运）箱单位数量
     * @param
     * @param
     * @param map
     * @return
     */
    public Integer updateMxfyzt(@Param("map")Map<String,Object> map);
    /**
     * 更改发运订单发运状态
     * @param
     * @param map
     * @return
     */
    public Integer updateDdfyzt(@Param("map")Map<String,Object> map);

    /**
     *
     * @param map
     * @return
     */
    public Integer searchDdMxSl1(@Param("map")Map<String,Object> map);

    /**
     * 查订单信息用id
     * @param id
     * @return
     */
    public WmsShipmentOrder selectDd(@Param("id") String id);
    /**
     * 判断是否存在待拣货数据
     * @param map
     * @return
     */
    public List<WmsShipmentOrder> dataJudgment(@Param("map")Map<String,Object> map);
    /**
     * 查询货主信息(生成拣货任务)
     *
     * @param hzid
     * @return
     */
    public WmsOwner searchWmsOwner(@Param("hzid") String hzid);

    /**
     * 查询发运订单下面的装箱的整箱数据
     *
     * @param map
     * @return
     */
    public List<WmsPickingTaskPda> searchBox(@Param("map") Map<String, Object> map);
    /**
     * 查询发运订单下面的装箱的散箱数据
     * @param map
     * @return
     */
    public List<WmsPickingTaskDps> searchBox2(@Param("map") Map<String, Object> map);

    /**
     * 查询客户集货库位id
     *
     * @param ydid
     * @return
     */
    public WmsPickingTaskPda searchKhjhkwid(@Param("ydid") String ydid);
    /**
     * 保存拣货任务进pda(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public Integer createPickingTask(@Param("map") Map<String, Object> map);

    /**
     * PDA消息表添加
     *
     * @param map
     * @return
     */
    public Integer saveMsg(@Param("map") Map<String, Object> map);
    /**
     * 保存拣货任务进Dps(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public Integer createPickingTask2(@Param("map") Map<String, Object> map);

    /**
     * 更改分配生成状态(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public Integer updateFp2(@Param("map") Map<String, Object> map);

    /**
     * 还原PDA数据(删除pda数据)(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public Integer deletePda(@Param("map") Map<String, Object> map);

    /**
     * 还原DPS数据(删除dps数据)(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public Integer deleteDps(@Param("map") Map<String, Object> map);

    /**
     * 查询发运订单下面的分配数据(PDA)(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public List<WmsPickingTaskPda> queryDistribution(@Param("map") Map<String, Object> map);

    /**
     * 查询发运订单下面的分配数据(DPS)(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public List<WmsPickingTaskDps> queryDistribution2(@Param("map") Map<String, Object> map);

    /**
     * 查询发运订单明细(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public List<WmsShipmentOrderDetailed> orderDetailed(@Param("map") Map<String, Object> map);

    /**
     * 更改发运订单状态
     *
     * @param map
     * @return
     */
    public Integer updateDdjhzt(@Param("map") Map<String, Object> map);

    /**
     * 查询装箱信息(分配ID)
     *
     * @param fpid
     * @return
     */
    public List<WmsBox> searchBox3(@Param("fpid") String fpid);
    /**
     * 查询装箱信息(分配ID)
     *
     * @param map
     * @return
     */
    public WmsBox searchBoxS(@Param("map") Map<String, Object> map);
    /**
     * 查询发运订单明细数据(发运订单明细id)
     *
     * @param id
     * @return
     */
    public WmsShipmentOrderDetailed searchDdMx(@Param("id") String id);

    /**
     * 查询供应商id
     * @param kcid
     * @return
     */
    public WmsStock selectGys(@Param("kcid") String kcid);

    /**
     * 查询发运订单数据(发运订单id)
     *
     * @param id
     * @return
     */
    public WmsShipmentOrder searchDd(@Param("id") String id);
    /**
     * 查询分配信息(传分配id)
     *
     * @param id
     * @return
     */
    public WmsDistribution searchFpMx(@Param("id") String id);

    /**
     * 统计发运订单明细数据
     *
     * @param map
     * @return
     */
    public WmsShipmentOrderDetailed searchDdMx2(@Param("map") Map<String, Object> map);

    /**
     * 打印分拣单查询
     * @param map
     * @return
     */
    public List<WmsPrintPicking> printPicking(@Param("map") Map<String, Object> map);

    /**
     * 打印分拣单查询2(统计主单位数量)
     * @param ssfyid
     * @return
     */
    public WmsPrintPicking printPicking2(@Param("ssfyid") String ssfyid);
    /**
     * 打印分拣单明细查询
     *
     * @param ssfyid
     * @return
     */
    public List<WmsPrintPickingDetail> printPickingDetailed(@Param("ssfyid")String ssfyid);

    /**
     * 打印合并分拣单查询
     *
     * @param map
     * @return
     */
    public WmsPrintPicking printMergePicking(@Param("map") Map<String, Object> map);

    /**
     * 获取货主集货库位
     *
     * @param hzid
     * @return
     */
    public WmsOwner searchWmsOwner2(@Param("hzid") String hzid);

    /**
     * 打印分拣单查询2(统计主单位数量)
     *
     * @param map
     * @return
     */
    public String printMergePicking2(@Param("map") Map<String, Object> map);

    /**
     * 打印合并分拣单明细查询
     *
     * @param map
     * @return
     */
    public List<WmsPrintPickingDetail> printMergePickingDetailed(@Param("map") Map<String, Object> map);

    /**
     * 打印合并分拣单明细查询备注信息
     *
     * @param map3
     * @return
     */
    public List<WmsPrintPickingDetail> printMergePickingDetailed2(@Param("map") Map<String, Object> map3);
    /**
     * 查看已完成拣货任务
     *
     * @param map
     * @return
     */
    public List<WmsPickingTask> seeCompleteTask(@Param("map") Map<String, Object> map);

    /**
     * 查看未完成拣货任务
     *
     * @param map
     * @return
     */
    public List<WmsPickingTask> notCompleteTask(@Param("map") Map<String, Object> map);

    /**
     * 整箱的拣货记录将不需要复核就可以发运(查询是否为整箱)
     *
     * @param zxid
     * @return
     */
    public WmsBox searchBox4(@Param("zxid") String zxid);

    /**
     * 传发运东单id查询装箱信息(发送短信专用)
     *
     * @param id
     * @return
     */
    public List<WmsBox> searchBoxMx(@Param("id") String id);

    /**
     * 查询库位数据
     *
     * @param kwid
     * @return
     */
    public WmsLibraryPosition searchKw(@Param("kwid") String kwid);

    /**
     * 查询货品信息
     *
     * @param hpid
     * @return
     */
    public WmsGoods searchHp(@Param("hpid") String hpid);
}
